package project;

import interfacesFerrovia.DefsGlobais.TipoAtributo;
import java.util.Set;

import malhaFerroviaria.Ferrovia;

public class Chave {
	private String id;
	private String[] trechos_A, trechos_B;
	private String tr_atual_A, tr_atual_B;
	private int tempo_mudanca=0, tempo_conclusao=0;
	private float distancia = 0;
	private boolean em_mudanca=false;
	
	public Chave(String id, Set<TipoAtributo> s, Ferrovia f) {
		for(TipoAtributo attr : s)
		{
			Object valor = f.consultaAtributo(id, attr);
			switch (attr.name()) {
				case "ID":
					this.id = (String)valor;
					break;
				case "ID_TR_CH_B":
					this.tr_atual_B = valor.toString();
					break;
				case "ID_TR_CH_A":
					this.tr_atual_A = valor.toString();
					break;
				case "TRECHOS_A":
					this.trechos_A = (String[])valor;
					break;
				case "TRECHOS_B":
					this.trechos_B = (String[])valor;
					break;
				case "DISTANCIA":
					this.distancia = (float)valor;
					break;
				case "TEMPO_MUDANCA":
					this.tempo_mudanca = (int)valor;
					break;
				case "TEMPO_CONCLUSAO":
					this.tempo_conclusao = (int)valor;
					break;
				case "EM_MUDANCA":
					this.em_mudanca = (boolean)valor;
					break;
				default:
					break;
			}
		}
	}
	
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public float getDistancia() {
		return distancia;
	}
	public void setDistancia(float distancia) {
		this.distancia = distancia;
	}
	public String[] getTrechos_A() {
		return trechos_A;
	}
	public void setTrechos_A(String[] trechos_A) {
		this.trechos_A = trechos_A;
	}
	public String[] getTrechos_B() {
		return trechos_B;
	}
	public void setTrechos_B(String[] trechos_B) {
		this.trechos_B = trechos_B;
	}
	public String getTr_atual_A() {
		return tr_atual_A;
	}
	public void setTr_atual_A(String tr_atual_A) {
		this.tr_atual_A = tr_atual_A;
	}
	public String getTr_atual_B() {
		return tr_atual_B;
	}
	public void setTr_atual_B(String tr_atual_B) {
		this.tr_atual_B = tr_atual_B;
	}
	public int getTempo_mudanca() {
		return tempo_mudanca;
	}
	public void setTempo_mudanca(int tempo_mudanca) {
		this.tempo_mudanca = tempo_mudanca;
	}
	public int getTempo_conclusao() {
		return tempo_conclusao;
	}
	public void setTempo_conclusao(int tempo_conclusao) {
		this.tempo_conclusao = tempo_conclusao;
	}
	public boolean isEm_mudanca() {
		return em_mudanca;
	}
	public void setEm_mudanca(boolean em_mudanca) {
		this.em_mudanca = em_mudanca;
	}
}
